/**
 * Created by Administrator on 2017/2/27.
 */
var fs = require('fs');//文件处理
/**
 * 注册url
 * @param router
 * @param mapping
 */
const addMapping=(router,mapping)=>{
    for(var url in mapping){
        if(url.startsWith('GET')){
            //如果url类似为GET ***
            var path = url.substring(4);
            router.get(path,mapping[url]);
            console.log(`注册url映射:GET ${path}`);
        }else if(url.startsWith('POST')){
            //如果url类似于post ***
            var path = url.substring(5);
            router.post(path,mapping[url]);
            console.log(`注册url映射:POST ${path}`);
        }else{
            console.log('无效URL');
        }
    }
}
/**
 * 扫描文件夹找到所有的js文件
 * @param router
 * @param dir
 * readdirSync：列出文件（Sync是因为启动时只运行一次）
 */
const addController=(router,dir)=>{
    var files = fs.readdirSync(__dirname+'/'+dir);
    var js_files = files.filter((f)=>{ //过滤出js文件
        return f.endsWith('.js');//指定结束后缀为.js
    })
    for(var f of js_files){
        //导入js文件
        let mapping= require(__dirname+'/'+dir+'/'+f);
        addMapping(router,mapping);
    }
}

/**
 * 默认导出
 * @param dir
 * @returns {*}
 */
module.exports = (dir)=>{
    let controllers_dir = dir || 'controllers',//如果不传参数默认为controllers
        router = require('koa-router')();
    addController(router,controllers_dir);
    return router.routes();
}